/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.eventos.be;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author oscar
 */
@Entity
@Table(name = "eca_modelo_presupuesto")
//@NamedQueries({@NamedQuery(name = "ModeloPresupuesto.findAll", query = "SELECT m FROM ModeloPresupuesto m"), @NamedQuery(name = "ModeloPresupuesto.findByPcuCodigo", query = "SELECT m FROM ModeloPresupuesto m WHERE m.pcuCodigo = :pcuCodigo"), @NamedQuery(name = "ModeloPresupuesto.findByPcufechaCreacion", query = "SELECT m FROM ModeloPresupuesto m WHERE m.pcufechaCreacion = :pcufechaCreacion"), @NamedQuery(name = "ModeloPresupuesto.findByPcufechaActualizacion", query = "SELECT m FROM ModeloPresupuesto m WHERE m.pcufechaActualizacion = :pcufechaActualizacion"),
//@NamedQuery(name = "ModeloPresupuesto.findByPcuIngresos", query = "SELECT m FROM ModeloPresupuesto m WHERE m.pcuIngresos = :pcuIngresos"), @NamedQuery(name = "ModeloPresupuesto.findByPcuEgresos", query = "SELECT m FROM ModeloPresupuesto m WHERE m.pcuEgresos = :pcuEgresos"), @NamedQuery(name = "ModeloPresupuesto.findByPcupersonasEstimadas", query = "SELECT m FROM ModeloPresupuesto m WHERE m.pcupersonasEstimadas = :pcupersonasEstimadas")})
public class ModeloPresupuesto implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "pcu_codigo")
    private Integer pcuCodigo;
    @Basic(optional = false)
    @Column(name = "pcu_fechaCreacion")
    @Temporal(TemporalType.DATE)
    private Date pcufechaCreacion;
    @Basic(optional = false)
    @Column(name = "pcu_fechaActualizacion")
    @Temporal(TemporalType.DATE)
    private Date pcufechaActualizacion;
    @Basic(optional = false)
    @Temporal(TemporalType.DATE)
    @Column(name = "pcu_fechaEntrega")
    private Date pcuFechaEntrega;
    @Column(name = "pcu_nroModulo")
    private Integer pcuNroModulos;
    @Column(name = "pcu_estado")
    private Boolean pcuEstado;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "pcuCodigo", fetch = FetchType.LAZY)
    private List<DetalleEgresos> detallePresupuestoCollection;
    @JoinColumn(name = "pre_codigo", referencedColumnName = "pre_codigo")
    @ManyToOne(fetch = FetchType.LAZY)
    private Preevento preevento;

    public ModeloPresupuesto() {
    }

    public ModeloPresupuesto(Integer pcuCodigo) {
        this.pcuCodigo = pcuCodigo;
    }

    public ModeloPresupuesto(Integer pcuCodigo, Date pcufechaCreacion, Date pcufechaActualizacion) {
        this.pcuCodigo = pcuCodigo;
        this.pcufechaCreacion = pcufechaCreacion;
        this.pcufechaActualizacion = pcufechaActualizacion;
    }

    public Boolean getPcuEstado() {
        return pcuEstado;
    }

    public void setPcuEstado(Boolean pcuEstado) {
        this.pcuEstado = pcuEstado;
    }

    public Integer getPcuNroModulos() {
        return pcuNroModulos;
    }

    public void setPcuNroModulos(Integer pcuNroModulos) {
        this.pcuNroModulos = pcuNroModulos;
    }

    public Integer getPcuCodigo() {
        return pcuCodigo;
    }

    public void setPcuCodigo(Integer pcuCodigo) {
        this.pcuCodigo = pcuCodigo;
    }

    public Date getPcufechaCreacion() {
        return pcufechaCreacion;
    }

    public void setPcufechaCreacion(Date pcufechaCreacion) {
        this.pcufechaCreacion = pcufechaCreacion;
    }

    public Date getPcufechaActualizacion() {
        return pcufechaActualizacion;
    }

    public void setPcufechaActualizacion(Date pcufechaActualizacion) {
        this.pcufechaActualizacion = pcufechaActualizacion;
    }

    public Date getPcuFechaEntrega() {
        return pcuFechaEntrega;
    }

    public void setPcuFechaEntrega(Date pcuFechaEntrega) {
        this.pcuFechaEntrega = pcuFechaEntrega;
    }

    public List<DetalleEgresos> getDetallePresupuestoCollection() {
        return detallePresupuestoCollection;
    }

    public void setDetallePresupuestoCollection(List<DetalleEgresos> detallePresupuestoCollection) {
        this.detallePresupuestoCollection = detallePresupuestoCollection;
    }

    public Preevento getPreevento() {
        return preevento;
    }

    public void setPreevento(Preevento preevento) {
        this.preevento = preevento;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (pcuCodigo != null ? pcuCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ModeloPresupuesto)) {
            return false;
        }
        ModeloPresupuesto other = (ModeloPresupuesto) object;
        if ((this.pcuCodigo == null && other.pcuCodigo != null) || (this.pcuCodigo != null && !this.pcuCodigo.equals(other.pcuCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.cip.esymons.eventos.be.ModeloPresupuesto[pcuCodigo=" + pcuCodigo + "]";
    }
}
